/**
 * 微信内置浏览器支付方法
 * @param {Object} payParams - 支付参数
 * @param {Function} successCallback - 成功回调
 * @param {Function} failCallback - 失败回调
 */
export function wechatInAppPayment(payParams, successCallback, failCallback) {
  // 判断是否在微信浏览器中
  if (typeof WeixinJSBridge === 'undefined') {
    if (document.addEventListener) {
      document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
    } else if (document.attachEvent) {
      document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
      document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
    }
  } else {
    onBridgeReady();
  }

  // 调用微信支付
  function onBridgeReady() {
    WeixinJSBridge.invoke(
      'getBrandWCPayRequest',
      {
        appId: payParams.appId, // 公众号ID
        timeStamp: payParams.timeStamp, // 时间戳
        nonceStr: payParams.nonceStr, // 随机串
        package: payParams.package, // 预支付交易会话ID
        signType: payParams.signType, // 签名方式
        paySign: payParams.paySign // 签名
      },
      function(res) {
        if (res.err_msg === 'get_brand_wcpay_request:ok') {
          // 支付成功
          successCallback && successCallback(res);
        } else {
          // 支付失败
          failCallback && failCallback(res);
        }
      }
    );
  }
}

/**
 * 外部浏览器微信H5支付
 * @param {Object} payParams - 支付参数
 */
export function wechatH5Payment(payParams) {
  // 直接跳转微信H5支付链接
  window.location.href = payParams.mweb_url + '&redirect_url=' + encodeURIComponent(
    // 支付完成后跳转的URL
    window.location.origin + '/pages/payment/result?orderNo=' + payParams.orderNo
  );
}

/**
 * 检查是否在微信浏览器中
 */
export function isWechatBrowser() { 
  const ua = navigator.userAgent.toLowerCase();
  return ua.indexOf('micromessenger') !== -1;
}    